#set( $symbol_pound = '#' )
#set( $symbol_dollar = '$' )
#set( $symbol_escape = '\' )
package ${package}.bean;

import java.security.Principal;

import javax.enterprise.context.RequestScoped;
import javax.inject.Inject;
import javax.inject.Named;
import javax.persistence.PersistenceException;

import ${package}.negocio.api.UsuarioNegocio;
import br.com.framework.apresentacao.bean.BaseBean;
import br.com.framework.negocio.exception.NegocioException;

@Named
@RequestScoped
public class MudarSenhaBean extends BaseBean {
	
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	
	@Inject
	private UsuarioNegocio usuarioNegocio;
	
	private String login;
	private String senha;
	private String novaSenha;
	private String confirmaNovaSenha;
	
	@Inject
	private LoginBean loginBean;
	
	/**
	 * @return the senha
	 */
	public String getSenha() {
		return senha;
	}
	/**
	 * @param senha the senha to set
	 */
	public void setSenha(String senha) {
		this.senha = senha;
	}
	/**
	 * @return the novaSenha
	 */
	public String getNovaSenha() {
		return novaSenha;
	}
	/**
	 * @param novaSenha the novaSenha to set
	 */
	public void setNovaSenha(String novaSenha) {
		this.novaSenha = novaSenha;
	}
	/**
	 * @return the confirmaNovaSenha
	 */
	public String getConfirmaNovaSenha() {
		return confirmaNovaSenha;
	}
	/**
	 * @param confirmaNovaSenha the confirmaNovaSenha to set
	 */
	public void setConfirmaNovaSenha(String confirmaNovaSenha) {
		this.confirmaNovaSenha = confirmaNovaSenha;
	}
	
	/**
	 * 
	 */
	public void mudarSenha() {
		try {
			Principal principal = getExternalContext().getUserPrincipal(); 
			usuarioNegocio.atualizarSenha(principal.getName(), 
					senha, novaSenha, confirmaNovaSenha);
			senha = "";
			novaSenha = "";
			confirmaNovaSenha = "";
			this.facesMessages.addMessageInfo(null, "label.mensagem.senhaAlteradaSucesso");
			loginBean.removerRememberCookie();
		} catch (NegocioException e) {
			LOGGER.warn("Erro ao modificar senha do usuario: " + login, e);
			this.facesMessages.addMessageWarn(null, e.getMessage());
		} catch (PersistenceException e) {
			LOGGER.error("Falha ao modificar senha do usuario: " + login, e);
			this.facesMessages.addMessageError(null, e.getMessage());
		}
	}
	
}
